home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 40 / Amiga Format CD40 (1999-05-11)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-06].iso / -readerstuff- / paul_qureshi / info / colorspace-faq.txt < prev    next >
Text File  |  1999-03-27  |  94KB  |  1,987 lines

  1.  
  2. colorspace-faq -- FREQUENTLY ASKED QUESTIONS ABOUT GAMMA AND COLOUR
  3.  
  4.  
  5. Copyright (c) 1995/05/28
  6.  
  7. Charles A. Poynton
  8. poynton@inforamp.net
  9. <http://www.inforamp.net/~poynton/>
  10.  
  11.  
  12. This is the 1995/05/28 revision of "colorspace-faq". 
  13.  
  14. In video, computer graphics and image processing the "gamma" symbol
  15. represents a numerical parameter that describes the nonlinearity of
  16. intensity reproduction. The Gamma FAQ section of this document
  17. clarifies aspects of nonlinear image coding.
  18.  
  19. The Colour FAQ section of this document clarifies aspects of colour
  20. specification and image coding that are important to computer graphics,
  21. image processing, video, and the transfer of digital images to print. 
  22.  
  23. Colorspace-faq was originated by David Bourgin
  24. <dbourgin@turing.imag.fr>, who has ceded responsibility for maintenance
  25. at RTFM and periodic posting. This version of colorspace-faq comprises
  26. concatenated GammaFAQ and ColorFAQ documents which were previously
  27. available -- and remain available -- by ftp; see G-0 below.
  28.  
  29. Adrian Ford and Alan Roberts have written a Colour Equations FAQ that
  30. details transforms among colour spaces such as RGB, HSI, HSL, CMY and
  31. video. Find it at <ftp://ftp.wmin.ac.uk/pub/itrg/coloureq.txt> (48 KB).
  32.  
  33. I retain copyright to this note. You have permission to use it, but you
  34. may not publish it.
  35.  
  36.  
  37. CONTENTS
  38.  
  39.     G-0   Where do these documents live?
  40.  
  41. Frequently Asked Questions about Gamma 
  42.  
  43.     G-1   What is intensity?
  44.     G-2   What is luminance?
  45.     G-3   What is lightness?
  46.     G-4   What is gamma?
  47.     G-5   What is gamma correction?
  48.     G-6   Does NTSC use a gamma of 2.2?
  49.     G-7   Does PAL use a gamma of 2.8?
  50.     G-8   I pulled an image off the net and it looks murky.
  51.     G-9   I pulled an image off the net and it looks a little too contrasty.
  52.     G-10  What is luma?
  53.     G-11  What is contrast ratio?
  54.     G-12  How many bits do I need to smoothly shade from black to white?
  55.     G-13  How is gamma handled in video, computer graphics and desktop 
  56.            computing?
  57.     G-14  What is the gamma of a Macintosh?
  58.     G-15  Does the gamma of CRTs vary wildly?
  59.     G-16  How should I adjust my monitor's brightness and contrast controls?
  60.     G-17  Should I do image processing operations on linear or nonlinear 
  61.             image data?
  62.     G-18  What's the transfer function of offset printing?
  63.     G-19  References
  64.  
  65. Frequently Asked Questions about Color 
  66.  
  67.     C-1   What is colour?
  68.     C-2   What is intensity?
  69.     C-3   What is luminance?
  70.     C-4   What is lightness?
  71.     C-5   What is hue?
  72.     C-6   What is saturation?
  73.     C-7   How is colour specified?
  74.     C-8   Should I use a colour specification system for image data?
  75.     C-9   What weighting of red, green and blue corresponds to brightness?
  76.     C-10  Can blue be assigned fewer bits than red or green?
  77.     C-11  What is "luma"?
  78.     C-12  What are CIE XYZ components?
  79.     C-13  Does my scanner use the CIE spectral curves?
  80.     C-14  What are CIE x and y chromaticity coordinates?
  81.     C-15  What is white?
  82.     C-16  What is colour temperature?
  83.     C-17  How can I characterize red, green and blue?
  84.     C-18  How do I transform between CIE XYZ and a particular set of RGB
  85.             primaries?
  86.     C-19  Is RGB always device-dependent?
  87.     C-20  How do I transform data from one set of RGB primaries to another?
  88.     C-21  Should I use RGB or XYZ for image synthesis?
  89.     C-22  What is subtractive colour?
  90.     C-23  Why did my grade three teacher tell me that the primaries are red,
  91.             yellow and blue?
  92.     C-24  Is CMY just one-minus-RGB?
  93.     C-25  Why does offset printing use black ink in addition to CMY?
  94.     C-26  What are colour differences?
  95.     C-27  How do I obtain colour difference components from tristimulus values?
  96.     C-28  How do I encode Y'PBPR components?
  97.     C-29  How do I encode Y'CBCR components from R'G'B' in [0, +1]?
  98.     C-30  How do I encode Y'CBCR components from computer R'G'B' ?
  99.     C-31  How do I encode Y'CBCR components from studio video?
  100.     C-32  How do I decode R'G'B' from PhotoYCC?
  101.     C-33  Will you tell me how to decode Y'UV and Y'IQ?
  102.     C-34  How should I test my encoders and decoders?
  103.     C-35  What is perceptual uniformity?
  104.     C-36  What are HSB and HLS?
  105.     C-37  What is true colour?
  106.     C-38  What is indexed colour?
  107.     C-39  I want to visualize a scalar function of two variables. Should I use
  108.             RGB values corresponding to the colours of the rainbow?
  109.     C-40  What is dithering?
  110.     C-41  How does halftoning relate to colour?
  111.     C-42  What's a colour management system?
  112.     C-43  How does a CMS know about particular devices?
  113.     C-44  Is a colour management system useful for colour specification?
  114.     C-45  I'm not a colour expert. What parameters should I use to 
  115.             code my images?
  116.     C-46  References
  117.     C-47  Contributors
  118.  
  119.  
  120. G-0   WHERE DO THESE DOCUMENTS LIVE?
  121.  
  122. Each document GammaFAQ and ColorFAQ is available in four formats --
  123. Adobe Acrobat (PDF), hypertext (HTML), PostScript, and plain 7-bit
  124. ASCII text-only. You are reading the concatenation of the text versions
  125. of GammaFAQ and ColorFAQ. The text formats are devoid of graphs and
  126. illustrations, of course; I strongly recommend the PDF versions.
  127.  
  128. The hypertext version is linked from my colour page,
  129.  
  130.     <http://www.inforamp.net/~poynton/Poynton-colour.html>
  131.  
  132. The PDF, PostScript and text formats are available by ftp:
  133.  
  134.     <ftp://ftp.inforamp.net/pub/users/poynton/doc/colour/>
  135.  
  136. The PDF, PostScript and text are mirrored to space provided by
  137. Fraunhofer Computer Graphics in Rhode Island, U.S.A. at
  138.  
  139.     <ftp://elaine.crcg.edu/pub/doc/colour/>
  140.     
  141. and in Darmstadt, Germany at
  142.  
  143.     <ftp://ftp.igd.fhg.de/pub/doc/colour/>
  144.  
  145. If you have access to Internet e-mail but not to ftp, use a mailer that
  146. is properly configured with your return address to send mail to
  147. <ftpmail@decwrl.dec.com> with en empty subject and the single word help
  148. in the body.
  149.  
  150.  
  151. PDF Notes
  152.  
  153. Adobe's Acrobat Reader is freely available for Windows, Mac, MS-DOS and
  154. SPARC. If you don't already have a reader, you can obtain one from
  155.  
  156.     <ftp://ftp.adobe.com/pub/adobe/Applications/Acrobat/>
  157.     
  158. in a subdirectory and file appropriate for your platform. 
  159.  
  160. On CompuServe, GO Acrobat. 
  161.  
  162. On America Online, for Mac, use Keyword Adobe -> Software Libraries ->
  163. Macintosh Libraries -> Mac Utilities/Notes/Drivers, then scroll down to
  164. Adobe Acrobat Reader 2.0.1.sit (2542413 bytes). For Windows, Keyword
  165. Adobe -> Software Libraries -> PC Utilities/Notes/Drivers then scroll
  166. to Adobe Acrobat Reader, ACROREAD.EXE (1438059 bytes).
  167.  
  168. Transfer PDF files in binary mode, particularly to Windows or MS-DOS
  169. machines.
  170.  
  171. The PDF files contain "bookmarks" corresponding to the table of contents.
  172. Clicking a bookmark takes you to  the topic. Also, cross-references in the 
  173. PDF files are links.
  174.  
  175.  
  176. PostScript Notes
  177.  
  178. Acrobat Reader allows viewing on-screen on multiple platforms, printing
  179. to both PostScript and non-PostScript printers, and permits viewing and
  180. printing independent of the fonts that you have installed. But for
  181. those people who cannot or do not wish to run Acrobat Reader, I provide
  182. PostScript versions of the notes.
  183.  
  184. The documents use only Times, Helvetica, Palatino and Symbol fonts and
  185. are laid out with generous margins for US Letter size paper. I confess
  186. I don't know how well they print to A4 but it should fit. If anyone
  187. using A4 has suggestions to improve the PostScript please let me know.
  188.  
  189. The PostScript files are compressed with Gnu zip compression, and are
  190. given the file suffix ".gz". Gzip for UNIX (and maybe other platforms
  191. as well) is available from the usual gnu sites. If you use a Macintosh,
  192. the latest freeware StuffIt Expander 3.5.2 will decode gnu zip files.
  193.  
  194.  
  195. ------------------------------
  196.  
  197. FREQUENTLY ASKED QUESTIONS ABOUT GAMMA 
  198.  
  199.  
  200. G-1   WHAT IS INTENSITY?
  201.  
  202. Intensity is a measure over some interval of the electromagnetic spectrum of
  203. the flow of power that is radiated from, or incident on, a surface.
  204. Intensity is what I call a "linear-light measure", expressed in units such as
  205. watts per square meter.
  206.  
  207. The voltages presented to a CRT monitor control the intensities of the
  208. colour components, but in a nonlinear manner. CRT voltages are not
  209. proportional to intensity.
  210.  
  211. Image data stored in a file (TIFF, JFIF, PPM, etc.) may or may not
  212. represent intensity, even if it is so described. The I component of a
  213. color described as HSI (hue, saturation, intensity) does not accurately
  214. represent intensity if HSI is computed according to any of the usual
  215. formulae.
  216.  
  217.  
  218. G-2   WHAT IS LUMINANCE?
  219.  
  220. Brightness is defined by the Commission Internationale de L'Eclairage (CIE)
  221. as the attribute of a visual sensation according to which an area appears
  222. to emit more or less light. Because brightness perception is very complex,
  223. the CIE defined a more tractable quantity luminance, denoted Y, which is
  224. radiant power weighted by a spectral sensitivity function that is
  225. characteristic of vision. To learn about the relationship between physical
  226. spectra and perceived brightness, and other color issues, refer to the
  227. companion Frequently Asked Questions about Colour.
  228.  
  229. The magnitude of luminance is proportional to physical power. In that sense
  230. it is like intensity. But the spectral composition of luminance is related
  231. to the brightness sensitivity of human vision.
  232.  
  233.  
  234. G-3   WHAT IS LIGHTNESS?
  235.  
  236. Human vision has a nonlinear perceptual response to brightness: a source
  237. having a luminance only 18% of a reference luminance appears about half as
  238. bright. The perceptual response to luminance is called Lightness and is
  239. defined by the CIE [1] as a modified cube root of luminance:
  240.  
  241.   Lstar = -16 + 116 * (pow(Y / Yn), 1. / 3.)
  242.  
  243. Yn is the luminance of the white reference. If you normalize luminance to
  244. reference white then you need not compute the fraction. The CIE definition
  245. applies a linear segment with a slope of 903.3 near black, for (Y/Yn) <
  246. 0.008856. The linear segment is unimportant for practical purposes but if
  247. you don't use it, make sure that you limit L* at zero. L* has a range of 0
  248. to 100, and a "delta L-star" of unity is taken to be roughly the threshold
  249. of visibility.
  250.  
  251. Stated differently, lightness perception is roughly logarithmic. You can
  252. detect an intensity difference between two patches when the ratio of their
  253. intensities differs by more than about one percent.
  254.  
  255. Video systems approximate the lightness response of vision using RGB
  256. signals that are each subject to a 0.45 power function. This is comparable
  257. to the 1/3 power function defined by L*.
  258.  
  259. The L component of a color described as HLS (hue, lightness, saturation)
  260. does not accurately represent lightness if HLS is computed according to
  261. any of the usual formulae. See Frequently Asked Questions about Colour.
  262.  
  263.  
  264. G-4   WHAT IS GAMMA?
  265.  
  266. The intensity of light generated by a physical device is not usually a
  267. linear function of the applied signal. A conventional CRT has a power-law
  268. response to voltage: intensity produced at the face of the display is
  269. approximately the applied voltage, raised to the 2.5 power. The numerical
  270. value of the exponent of this power function is colloquially known as
  271. gamma. This nonlinearity must be compensated in order to achieve correct
  272. reproduction of intensity.
  273.  
  274. As mentioned above (What is lightness?), human vision has a nonuniform
  275. perceptual response to intensity. If intensity is to be coded into a small
  276. number of steps, say 256, then in order for the most effective perceptual
  277. use to be made of the available codes, the codes must be assigned to
  278. intensities according to the properties of perception.
  279.  
  280. Here is a graph of an actual CRT's transfer function, at three different
  281. contrast settings:
  282.  
  283. << A nice graph is found in the .PDF and .PS versions. >>
  284.  
  285. This graph indicates a video signal having a voltage from zero to 700 mV.
  286. In a typical eight-bit digital-to-analog converter on a framebuffer card,
  287. black is at code zero and white is at code 255.
  288.  
  289. Through an amazing coincidence, vision's response to intensity is
  290. effectively the inverse of a CRT's nonlinearity. If you apply a transfer
  291. function to code a signal to take advantage of the properties of lightness
  292. perception - a function similar to the L* function - the coding will be
  293. inverted by a CRT.
  294.  
  295.  
  296. G-5   WHAT IS GAMMA CORRECTION?
  297.  
  298. In a video system, linear-light intensity is transformed to a nonlinear
  299. video signa by gamma correction, which is universally done at the camera.
  300. The Rec. 709 transfer function [2] takes linear-light intensity (here R) to
  301. a nonlinear component (here Rprime), for example, voltage in a video
  302. system:
  303.  
  304.   Rprime = ( R <= 0.018 ? 
  305.              4.5 * R : 
  306.              -0.099 + 1.099 * pow(R, 0.45) 
  307.            );
  308.  
  309. The linear segment near black minimizes the effect of sensor noise in
  310. practical cameras and scanners. Here is a graph of the Rec. 709 transfer
  311. function, for a signal range from zero to unity:
  312.  
  313. << An attractive graph is presented in the .PDF and .PS versions. >>
  314.  
  315. An idealized monitor inverts the transform:
  316.  
  317.   R = ( Rprime <= 0.081 ? 
  318.         Rprime / 4.5 : 
  319.         pow((Rprime + 0.099) / 1.099, 1. / 0.45) 
  320.       );
  321.  
  322. Real monitors are not as exact as this equation suggests, and have no linear
  323. segment, but the precise definition is necessary for accurate intermediate
  324. processing in the linear-light domain. In a colour system, an identical
  325. transfer function is applied to each of the three tristimulus
  326. (linear-light) RGB components. See Frequently Asked Questions about
  327. Colour.
  328.  
  329. By the way, the nonlinearity of a CRT is a function of the electrostatics
  330. of the cathode and the grid of an electron gun; it has nothing to do with
  331. the phosphor. Also, the nonlinearity is a power function (which has the
  332. form f(x) = x^a), not an exponential function (which has the form f(x) =
  333. a^x). For more detail, read Poynton's article [3].
  334.  
  335.  
  336. G-6   DOES NTSC USE A GAMMA OF 2.2?
  337.  
  338. Television is usually viewed in a dim environment. If an images's correct
  339. physical intensity is reproduced in a dim surround, a subjective effect
  340. called simultaneous contrast causes the reproduced image to appear lacking
  341. in contrast. The effect can be overcome by applying an end-to-end power
  342. function whose exponent is about 1.1 or 1.2. Rather than having each
  343. receiver provide this correction, the assumed 2.5-power at the CRT is
  344. under-corrected at the camera by using an exponent of about 1/2.2 instead
  345. of 1/2.5. The assumption of a dim viewing environment is built into video
  346. coding.
  347.  
  348.  
  349. G-7   DOES PAL USE A GAMMA OF 2.8?
  350.  
  351. Standards for 625/50 systems mention an exponent of 2.8 at the decoder,
  352. however this value is unrealistically high to be used in practice. If an
  353. exponent different from 0.45 is chosen for a power function with a linear
  354. segment near black like Rec. 709, the other parameters need to be changed
  355. to maintain function and tangent continuity.
  356.  
  357.  
  358. G-8   I PULLED AN IMAGE OFF THE NET AND IT LOOKS MURKY.
  359.  
  360. If an image originates in linear-light form, gamma correction needs to be
  361. applied exactly once. If gamma correction is not applied and linear-light
  362. image data is applied to a CRT, the midtones will be reproduced too dark.
  363. If gamma correction is applied twice, the midtones will be too light.
  364.  
  365.  
  366. G-9   I PULLED AN IMAGE OFF THE NET AND IT LOOKS A LITTLE TOO CONTRASTY.
  367.  
  368. Viewing environments typical of computing are quite bright. When an image
  369. is coded according to video standards it implicitly carries the assumption
  370. of a dim surround. If it is displayed without correction in a bright
  371. ambient, it will appear contrasty. In this circumstance you should apply a
  372. power function with an exponent of about 1/1.1 or 1/1.2 to correct for your
  373. bright surround.
  374.  
  375. Ambient lighting is rarely taken into account in the exchange of computer
  376. images. If an image is created in a dark environment and transmitted to a
  377. viewer in a bright environment, the recipient will find it to have
  378. excessive contrast.
  379.  
  380. If an image originated in a bright environment and viewed in a bright
  381. environment, it will need no modification no matter what coding is applied.
  382. But then it will carry an assumption of a bright surround. Video standards
  383. are widespread and well optimized for vision, so it makes sense to code
  384. with a power function of 0.45 and retain a single standard for the assumed
  385. viewing environment.
  386.  
  387. In the long term, for everyone to get the best results in image interchange
  388. among applications, an image originator should remove the effect of his
  389. ambient environment when he transmits an image. The recipient of an image
  390. should insert a transfer function appropriate for his viewing environment.
  391. In the short term, you should include with your image data tags that
  392. specify the parameters that you used to encode. TIFF 6.0 has provisions for
  393. this data. You can correct for your own viewing environment as appropriate,
  394. but until image interchange standards incorporate viewing conditions, you
  395. will also have to compensate for the originator's viewing conditions.
  396.  
  397.  
  398. G-10  WHAT IS LUMA?
  399.  
  400. In video it is standard to represent brightness information not as a
  401. nonlinear function of true CIE luminance, but as a weighted sum of
  402. nonlinear R'G'B' components called luma. For more information, consult the
  403. companion document Frequently Asked Questions about Colour.
  404.  
  405.  
  406. G-11  WHAT IS CONTRAST RATIO?
  407.  
  408. Contrast ratio is the ratio of intensity between the brightest white and
  409. the darkest black of a particular device or a particular environment.
  410. Projected cinema film - or a photographic reflection print - has a contrast
  411. ratio of about 80:1. Television assumes a contrast ratio - in your living
  412. room - of about 30:1. Typical office viewing conditions restrict contrast
  413. ratio of CRT display to about 5:1.
  414.  
  415.  
  416. G-12  HOW MANY BITS DO I NEED TO SMOOTHLY SHADE FROM BLACK TO WHITE?
  417.  
  418. At a particular level of adaptation, human vision responds to about a
  419. hundred-to-one contrast ratio of intensity from white to black. Call these
  420. intensities 100 and 1. Within this range, vision can detect that two
  421. intensities are different if the ratio between them exceeds about 1.01,
  422. corresponding to a contrast sensitivity of one percent.
  423.  
  424. To shade smoothly over this range, so as to produce no perceptible steps,
  425. at the black end of the scale it is necessary to have coding that
  426. represents different intensity levels 1.00, 1.01, 1.02 and so on. If linear
  427. light coding is used, the "delta" of 0.01 must be maintained all the way up
  428. the scale to white. This requires about 9,900 codes, or about fourteen bits
  429. per component.
  430.  
  431. If you use nonlinear coding, then the 1.01 "delta" required at the black
  432. end of the scale applies as a ratio, not an absolute increment, and
  433. progresses like compound interest up to white. This results in about 460
  434. codes, or about nine bits per component. Eight bits, nonlinearly coded
  435. according to Rec. 709, is sufficient for broadcast-quality digital
  436. television at a contrast ratio of about 50:1.
  437.  
  438. If poor viewing conditions or poor display quality restrict the contrast
  439. ratio of the display, then fewer bits can be employed.
  440.  
  441. If a linear light system is quantized to a small number of bits, with black
  442. at code zero, then the ability of human vision to discern a 1.01 ratio
  443. between adjacent intensity levels takes effect below code 100. If a linear
  444. light system has only eight bits, then the top end of the scale is only
  445. 255, and contouring in dark areas will be perceptible even in very poor
  446. viewing conditions.
  447.  
  448.  
  449. G-13  HOW IS GAMMA HANDLED IN VIDEO, COMPUTER GRAPHICS AND DESKTOP
  450.       COMPUTING?
  451.  
  452. As outlined above, gamma correction in video effectively codes into a
  453. perceptually uniform domain. In video, a 0.45-power function is applied at
  454. the camera, as shown in the top row of this diagram:
  455.  
  456. << A nice diagram is presented in the .PDF and .PS versions. >>
  457.  
  458. Synthetic computer graphics calculates the interaction of light and
  459. objects. These interactions are in the physical domain, and must be
  460. calculated in linear-light values. It is conventional in computer graphics
  461. to store linear-light values in the framebuffer, and introduce gamma
  462. correction at the lookup table at the output of the framebuffer. This is
  463. illustrated in the middle row above.
  464.  
  465. If linear-light is represented in just eight bits, near black the steps
  466. between codes will be perceptible as banding in smoothly-shaded images.
  467. This is the eight-bit bottleneck in the sketch.
  468.  
  469. Desktop computers are optimized neither for image synthesis nor for video.
  470. They have programmable "gamma" and either poor standards or no standards.
  471. Consequently, image interchange among desktop computers is fraught with
  472. difficulty.
  473.  
  474.  
  475. G-14  WHAT IS THE GAMMA OF A MACINTOSH?
  476.  
  477. Apple offers no definition of the nonlinearity - or loosely speaking, gamma
  478. - that is intrinsic in QuickDraw. But the combination of a default
  479. QuickDraw lookup table and a standard monitor causes intensity to represent
  480. the 1.8-power of the R, G and B values presented to QuickDraw. It is
  481. wrongly believed that Macintosh computers use monitors whose transfer
  482. function is different from the rest of the industry. The unconventional
  483. QuickDraw handling of nonlinearity is the root of this misconception.
  484. Macintosh coding is shown in the bottom row of the diagram
  485. << provided in the PDF and PS versions >>.
  486.  
  487. The transfer of image data in computing involves various transfer
  488. functions: at coding, in the framebuffer, at the lookup table, and at the
  489. monitor. Strictly speaking the term gamma applies to the exponent of the
  490. power function at the monitor. If you use the term loosely, in the case of
  491. a Mac you could call the gamma 1.4, 1.8 or 2.5 depending which part of the
  492. system you were discussing. More detail is available [4].
  493.  
  494. I recommend using the Rec. 709 transfer function, with its 0.45-power law,
  495. for best perceptual performance and maximum ease of interchange with
  496. digital video. If you need Mac compatibility you will have to code
  497. intensity with a 1/1.8-power law, anticipating QuickDraw's 1/1.4-power in
  498. the lookup table. This coding has adequate performance in the bright
  499. viewing environments typical of desktop applications, but suffers in darker
  500. viewing conditions that have high contrast ratio.
  501.  
  502.  
  503. G-15  DOES THE GAMMA OF CRTS VARY WILDLY?
  504.  
  505. Gamma of a properly adjusted conventional CRT varies anywhere between about
  506. 2.35 and 2.55.
  507.  
  508. CRTs have acquired a reputation for wild variation for two reasons. First,
  509. if the model intensity=voltage^gamma is naively fitted to a display with
  510. black-level error, the exponent deduced will be as much a function of the
  511. black error as the true exponent. Second, input devices, graphics libraries
  512. and application programs all have the potential to introduce their own
  513. transfer functions. Nonlinearities from these sources are often categorized
  514. as gamma and attributed to the display.
  515.  
  516.  
  517. G-16  HOW SHOULD I ADJUST MY MONITOR'S BRIGHTNESS AND CONTRAST CONTROLS?
  518.  
  519. On a CRT monitor, the control labelled contrast controls overall intensity,
  520. and the control labelled brightness controls offset (black level). Display
  521. a picture that is predominantly black. Adjust brightness so that the
  522. monitor reproduces true black on the screen, just at the threshold where it
  523. is not so far down as to "swallow" codes greater than the black code, but
  524. not so high that the picture sits on a "pedestal" of dark grey. When the
  525. critical point is reached, put a piece of tape over the brightness control.
  526. Then set contrast to suit your preference for display intensity.
  527.  
  528. For more information, consult "Black Level" and "Picture", 
  529. <ftp://ftp.inforamp.net/pub/users/poynton/doc/colour/Black_and_Picture.pdf>.
  530.  
  531.  
  532. G-17  SHOULD I DO IMAGE PROCESSING OPERATIONS ON LINEAR OR NONLINEAR IMAGE
  533.       DATA?
  534.  
  535. If you wish to simulate the physical world, linear-light coding is
  536. necessary. For example, if you want to produce a numerical simulation of a
  537. lens performing a Fourier transform, you should use linear coding. If you
  538. want to compare your model with the transformed image captured from a real
  539. lens by a video camera, you will have to "remove" the nonlinear gamma
  540. correction that was imposed by the camera, to convert the image data back
  541. into its linear-light representation.
  542.  
  543. On the other hand, if your computation involves human perception, a
  544. nonlinear representation may be required. For example, if you perform a
  545. discrete cosine transform on image data as the first step in image
  546. compression, as in JPEG, then you ought to use nonlinear coding that
  547. exhibits perceptual uniformity, because you wish to minimize the
  548. perceptibility of the errors that will be introduced during quantization.
  549.  
  550. The image processing literature rarely discriminates between linear and
  551. nonlinear coding. In the JPEG and MPEG standards there is no mention of
  552. transfer function, but nonlinear (video-like) coding is implicit:
  553. unacceptable results are obtained when JPEG or MPEG are applied to
  554. linear-light data. In computer graphic standards such as PHIGS and CGM
  555. there is no mention of transfer function, but linear-light coding is
  556. implicit. These discrepancies make it very difficult to exchange image data
  557. between systems.
  558.  
  559. When you ask a video engineer if his system is linear, he will say "Of
  560. course!" referring to linear voltage. If you ask an optical engineer if her
  561. system is linear, she will say "Of course!" referring to linear intensity.
  562. But when a nonlinear transform lies between the two systems, as in video, a
  563. linear transformation performed in one domain is not linear in the other.
  564.  
  565.  
  566. G-18  WHAT'S THE TRANSFER FUNCTION OF OFFSET PRINTING?
  567.  
  568. A image destined for halftone printing conventionally specifies each pixel
  569. in terms of dot percentage in film. An imagesetter's halftoning machinery
  570. generates dots whose areas are proportional to the requested coverage. In
  571. principle, dot percentage in film is inversely proportional to linear-light
  572. reflectance.
  573.  
  574. Two phenomena distort the requested dot coverage values. First, printing
  575. involves a mechanical smearing of the ink that causes dots to enlarge.
  576. Second, optical effects within the bulk of the paper cause more light to be
  577. absorbed than would be expected from the surface coverage of the dot alone.
  578. These phenomena are collected under the term dot gain, which is the
  579. percentage by which the light absorption of the printed dots exceeds the
  580. requested dot coverage.
  581.  
  582. Standard offset printing involves a dot gain at 50% of about 24%: when 50%
  583. absorption is requested, 74% absorption is obtained. The midtones print
  584. darker than requested. This results in a transfer function from code to
  585. reflectance that closely resembles the voltage-to-light curve of a CRT.
  586. Correction of dot gain is conceptually similar to gamma correction in
  587. video: physical correction of the "defect" in the reproduction process is
  588. very well matched to the lightness perception of human vision. Coding an
  589. image in terms of dot percentage in film involves coding into a roughly
  590. perceptually uniform space. The standard dot gain functions employed in
  591. North America and Europe correspond to intensity being reproduced as a
  592. power function of the digital code, where the numerical value of the
  593. exponent is about 1.75, compared to about 2.2 for video. This is lower than
  594. the optimum for perception, but works well for the low contrast ratio of
  595. offset printing.
  596.  
  597. The Macintosh has a power function that is close enough to printing practice
  598. that raw QuickDraw codes sent to an imagesetter produce acceptable results.
  599. High-end publishing software allows the user to specify the parameters of
  600. dot gain compensation.
  601.  
  602. I have described the linearity of conventional offset printing. Other
  603. halftoned devices have different characteristics, and require different
  604. corrections.
  605.  
  606.  
  607. G-19  REFERENCES
  608.  
  609. [1] Publication CIE No 15.2, Colorimetry, Second Edition (1986), Central
  610. Bureau of the Commission Internationale de L'Eclairage, Vienna, Austria.
  611.  
  612. [2] ITU-R Recommendation BT.709, Basic Parameter Values for the HDTV
  613. Standard for the Studio and for International Programme Exchange (1990),
  614. [formerly CCIR Rec. 709], ITU, 1211 Geneva 20, Switzerland.
  615.  
  616. [3] Charles A. Poynton, "Gamma and Its Disguises" in Journal of the Society
  617. of Motion Picture and Television Engineers, Vol. 102, No. 12 (December
  618. 1993), 1099-1108.
  619.  
  620. [4] Charles A. Poynton, "Gamma on the Apple Macintosh", 
  621. <ftp://ftp.inforamp.net/pub/users/poynton/doc/Mac/>.
  622.  
  623. ------------------------------
  624.  
  625. FREQUENTLY ASKED QUESTIONS ABOUT COLOR
  626.  
  627.  
  628. C-1   WHAT IS COLOUR?
  629.  
  630. Colour is the perceptual result of light in the visible region of the
  631. spectrum, having wavelengths in the region of 400 nm to 700 nm, incident
  632. upon the retina. Physical power (or radiance) is expressed in a spectral
  633. power distribution (SPD), often in 31 components each representing a 10 nm
  634. band.
  635.  
  636. The human retina has three types of colour photoreceptor cone cells, which
  637. respond to incident radiation with somewhat different spectral response
  638. curves. A fourth type of photoreceptor cell, the rod, is also present in
  639. the retina. Rods are effective only at extremely low light levels
  640. (colloquially, night vision), and although important for vision play no
  641. role in image reproduction.
  642.  
  643. Because there are exactly three types of colour photoreceptor, three
  644. numerical components are necessary and sufficient to describe a colour,
  645. providing that appropriate spectral weighting functions are used. This is
  646. the concern of the science of colorimetry. In 1931, the Commission
  647. Internationale de L'Eclairage (CIE) adopted standard curves for a
  648. hypothetical Standard Observer. These curves specify how an SPD can be
  649. transformed into a set of three numbers that specifies a colour.
  650.  
  651. The CIE system is immediately and almost universally applicable to
  652. self-luminous sources and displays. However the colours produced by
  653. reflective systems such as photography, printing or paint are a function
  654. not only of the colourants but also of the SPD of the ambient illumination.
  655. If your application has a strong dependence upon the spectrum of the
  656. illuminant, you may have to resort to spectral matching.
  657.  
  658. Sir Isaac Newton said, "Indeed rays, properly expressed, are not coloured."
  659. SPDs exist in the physical world, but colour exists only in the eye and the
  660. brain.
  661.  
  662.  
  663. C-2   WHAT IS INTENSITY?
  664.  
  665. Intensity is a measure over some interval of the electromagnetic spectrum
  666. of the flow of power that is radiated from, or incident on, a surface.
  667. Intensity is what I call a linear-light measure, expressed in units such as
  668. watts per square meter.
  669.  
  670. The voltages presented to a CRT monitor control the intensities of the
  671. colour components, but in a nonlinear manner. CRT voltages are not
  672. proportional to intensity.
  673.  
  674.  
  675. C-3   WHAT IS LUMINANCE?
  676.  
  677. Brightness is defined by the CIE as the attribute of a visual sensation
  678. according to which an area appears to emit more or less light. Because
  679. brightness perception is very complex, the CIE defined a more tractable
  680. quantity luminance which is radiant power weighted by a spectral
  681. sensitivity function that is characteristic of vision. The luminous
  682. efficiency of the Standard Observer is defined numerically, is everywhere
  683. positive, and peaks at about 555 nm. When an SPD is integrated using this
  684. curve as a weighting function, the result is CIE luminance, denoted Y.
  685.  
  686. The magnitude of luminance is proportional to physical power. In that sense
  687. it is like intensity. But the spectral composition of luminance is related
  688. to the brightness sensitivity of human vision.
  689.  
  690. Strictly speaking, luminance should be expressed in a unit such as candelas
  691. per meter squared, but in practice it is often normalized to 1 or 100 units
  692. with respect to the luminance of a specified or implied white reference.
  693. For example, a studio broadcast monitor has a white reference whose
  694. luminance is about 80 cd*m -2, and Y = 1 refers to this value.
  695.  
  696.  
  697. C-4   WHAT IS LIGHTNESS?
  698.  
  699. Human vision has a nonlinear perceptual response to brightness: a source
  700. having a luminance only 18% of a reference luminance appears about half as
  701. bright. The perceptual response to luminance is called Lightness. It is
  702. denoted L* and is defined by the CIE as a modified cube root of luminance:
  703.  
  704.   Lstar = -16 + 116 * (pow(Y / Yn), 1. / 3.)
  705.  
  706. Yn is the luminance of the white reference. If you normalize luminance to
  707. reference white then you need not compute the fraction. The CIE definition
  708. applies a linear segment with a slope of 903.3 near black, for (Y/Yn) <=
  709. 0.008856. The linear segment is unimportant for practical purposes but if
  710. you don't use it, make sure that you limit L* at zero. L* has a range of 0
  711. to 100, and a "delta L-star" of unity is taken to be roughly the threshold
  712. of visibility.
  713.  
  714. Stated differently, lightness perception is roughly logarithmic. An
  715. observer can detect an intensity difference between two patches when their
  716. intensities differ by more than one about percent.
  717.  
  718. Video systems approximate the lightness response of vision using R'G'B'
  719. signals that are each subject to a 0.45 power function. This is comparable
  720. to the 1/3 power function defined by L*.
  721.  
  722.  
  723. C-5   WHAT IS HUE?
  724.  
  725. According to the CIE [1], hue is the attribute of a visual sensation
  726. according to which an area appears to be similar to one of the perceived
  727. colours, red, yellow, green and bue, or a combination of two of them.
  728. Roughly speaking, if the dominant wavelength of an SPD shifts, the hue of
  729. the associated colour will shift.
  730.  
  731.  
  732. C-6   WHAT IS SATURATION?
  733.  
  734. Again from the CIE, saturation is the colourfulness of an area judged in
  735. proportion to its brightness. Saturation runs from neutral gray through
  736. pastel to saturated colours. Roughly speaking, the more an SPD is
  737. concentrated at one wavelength, the more saturated will be the associated
  738. colour. You can desaturate a colour by adding light that contains power at
  739. all wavelengths.
  740.  
  741.  
  742. C-7   HOW IS COLOUR SPECIFIED?
  743.  
  744. The CIE system defines how to map an SPD to a triple of numerical
  745. components that are the mathematical coordinates of colour space. Their
  746. function is analagous to coordinates on a map. Cartographers have different
  747. map projections for different functions: some map projections preserve
  748. areas, others show latitudes and longitudes as straight lines. No single
  749. map projection fills all the needs of map users. Similarly, no single
  750. colour system fills all of the needs of colour users.
  751.  
  752. The systems useful today for colour specification include CIE XYZ, CIE xyY,
  753. CIE L*u*v* and CIE L*a*b*. Numerical values of hue and saturation are not
  754. very useful for colour specification, for reasons to be discussed in
  755. section 36.
  756.  
  757. A colour specification system needs to be able to represent any colour with
  758. high precision. Since few colours are handled at a time, a specification
  759. system can be computationally complex. Any system for colour specification
  760. must be intimately related to the CIE specifications.
  761.  
  762. You can specify a single "spot" colour using a colour order system such as
  763. Munsell. Systems like Munsell come with swatch books to enable visual
  764. colour matches, and have documented methods of transforming between
  765. coordinates in the system and CIE values. Systems like Munsell are not
  766. useful for image data. You can specify an ink colour by specifying the
  767. proportions of standard (or secret) inks that can be mixed to make the
  768. colour. That's how pantone(tm) works. Although widespread, it's
  769. proprietary. No translation to CIE is publicly available.
  770.  
  771.  
  772. C-8   SHOULD I USE A COLOUR SPECIFICATION SYSTEM FOR IMAGE DATA?
  773.  
  774. A digitized colour image is represented as an array of pixels, where each
  775. pixel contains numerical components that define a colour. Three components
  776. are necessary and sufficient for this purpose, although in printing it is
  777. convenient to use a fourth (black) component.
  778.  
  779. In theory, the three numerical values for image coding could be provided by
  780. a colour specification system. But a practical image coding system needs to
  781. be computationally efficient, cannot afford unlimited precision, need not
  782. be intimately related to the CIE system and generally needs to cover only a
  783. reasonably wide range of colours and not all of the colours. So image
  784. coding uses different systems than colour specification.
  785.  
  786. The systems useful for image coding are linear RGB, nonlinear R'G'B',
  787. nonlinear CMY, nonlinear CMYK, and derivatives of nonlinear R'G'B' such
  788. as Y'CBCR. Numerical values of hue and saturation are not useful in colour
  789. image coding.
  790.  
  791. If you manufacture cars, you have to match the colour of paint on the door
  792. with the colour of paint on the fender. A colour specification system will
  793. be necessary. But to convey a picture of the car, you need image coding.
  794. You can afford to do quite a bit of computation in the first case because
  795. you have only two coloured elements, the door and the fender. In the second
  796. case, the colour coding must be quite efficient because you may have a
  797. million coloured elements or more.
  798.  
  799. For a highly readable short introduction to colour image coding, see
  800. DeMarsh and Giorgianni [2]. For a terse, complete technical treatment, read
  801. Schreiber [3].
  802.  
  803.  
  804. C-9   WHAT WEIGHTING OF RED, GREEN AND BLUE CORRESPONDS TO BRIGHTNESS?
  805.  
  806. Direct acquisition of luminance requires use of a very specific spectral
  807. weighting. However, luminance can also be computed as a weighted sum of
  808. red, green and blue components.
  809.  
  810. If three sources appear red, green and blue, and have the same radiance in
  811. the visible spectrum, then the green will appear the brightest of the three
  812. because the luminous efficiency function peaks in the green region of the
  813. spectrum. The red will appear less bright, and the blue will be the darkest
  814. of the three. As a consequence of the luminous efficiency function, all
  815. saturated blue colours are quite dark and all saturated yellows are quite
  816. light. If luminance is computed from red, green and blue, the coefficients
  817. will be a function of the particular red, green and blue spectral weighting
  818. functions employed, but the green coefficient will be quite large, the red
  819. will have an intermediate value, and the blue coefficient will be the
  820. smallest of the three.
  821.  
  822. Contemporary CRT phosphors are standardized in Rec. 709 [8], to be
  823. described in section 17. The weights to compute true CIE luminance from
  824. linear red, green and blue (indicated without prime symbols), for the Rec.
  825. 709, are these:
  826.  
  827.   Y = 0.212671 * R + 0.715160 * G + 0.072169 * B;
  828.  
  829. This computation assumes that the luminance spectral weighting can be
  830. formed as a linear combination of the scanner curves, and assumes that the
  831. component signals represent linear-light. Either or both of these
  832. conditions can be relaxed to some extent depending on the application.
  833.  
  834. Some computer systems have computed brightness using (R+G+B)/3. This is at
  835. odds with the properties of human vision, as will be discussed under What
  836. are HSB and HLS? in section 36.
  837.  
  838. The coefficients 0.299, 0.587 and 0.114 properly computed luminance for
  839. monitors having phosphors that were contemporary at the introduction of
  840. NTSC television in 1953. They are still appropriate for computing video
  841. luma to be discussed below in section 11. However, these coefficients do
  842. not accurately compute luminance for contemporary monitors.
  843.  
  844.  
  845. C-10  CAN BLUE BE ASSIGNED FEWER BITS THAN RED OR GREEN?
  846.  
  847. Blue has a small contribution to the brightness sensation. However, human
  848. vision has extraordinarily good colour discrimination capability in blue
  849. colours. So if you give blue fewer bits than red or green, you will
  850. introduce noticeable contouring in blue areas of your pictures.
  851.  
  852.  
  853. C-11  WHAT IS "LUMA"?
  854.  
  855. It is useful in a video system to convey a component representative of
  856. luminance and two other components representative of colour. It is
  857. important to convey the component representative of luminance in such a way
  858. that noise (or quantization) introduced in transmission, processing and
  859. storage has a perceptually similar effect across the entire tone scale from
  860. black to white. The ideal way to accomplish these goals would be to form a
  861. luminance signal by matrixing RGB, then subjecting luminance to a nonlinear
  862. transfer function similar to the L* function.
  863.  
  864. There are practical reasons in video to perform these operations in the
  865. opposite order. First a nonlinear transfer function - gamma correction - is
  866. applied to each of the linear R, G and B. Then a weighted sum of the
  867. nonlinear components is computed to form a signal representative of
  868. luminance. The resulting component is related to brightness but is not CIE
  869. luminance. Many video engineers call it luma and give it the symbol Y'. It
  870. is often carelessly called luminance and given the symbol Y. You must be
  871. careful to determine whether a particular author assigns a linear or
  872. nonlinear interpretation to the term luminance and the symbol Y.
  873.  
  874. The coefficients that correspond to the "NTSC" red, green and blue CRT
  875. phosphors of 1953 are standardized in ITU-R Recommendation BT. 601-2
  876. (formerly CCIR Rec. 601-2). I call it Rec. 601. To compute nonlinear video
  877. luma from nonlinear red, green and blue:
  878.  
  879.     Yprime = 0.299 * Rprime + 0.587 * Gprime + 0.114 * Bprime;
  880.  
  881. The prime symbols in this equation, and in those to follow, denote
  882. nonlinear components.
  883.  
  884.  
  885. C-12  WHAT ARE CIE XYZ COMPONENTS?
  886.  
  887. The CIE system is based on the description of colour as a luminance
  888. component Y, as described above, and two additional components X and Z. The
  889. spectral weighting curves of X and Z have been standardized by the CIE
  890. based on statistics from experiments involving human observers. XYZ
  891. tristimulus values can describe any colour. (RGB tristimulus values will be
  892. described later.)
  893.  
  894. The magnitudes of the XYZ components are proportional to physical energy,
  895. but their spectral composition corresponds to the colour matching
  896. characteristics of human vision.
  897.  
  898. The CIE system is defined in Publication CIE No 15.2, Colorimetry, Second
  899. Edition (1986) [4].
  900.  
  901.  
  902. C-13  DOES MY SCANNER USE THE CIE SPECTRAL CURVES?
  903.  
  904. Probably not. Scanners are most often used to scan images such as colour
  905. photographs and colour offset prints that are already "records" of three
  906. components of colour information. The usual task of a scanner is not
  907. spectral analysis but extraction of the values of the three components that
  908. have already been recorded. Narrowband filters are more suited to this task
  909. than filters that adhere to the principles of colorimetry.
  910.  
  911. If you place on your scanner an original coloured object that has
  912. "original" SPDs that are not already a record of three components, chances
  913. are your scanner will not very report accurate RGB values. This is because
  914. most scanners do not conform very closely to CIE standards.
  915.  
  916.  
  917. C-14  WHAT ARE CIE x AND y CHROMATICITY COORDINATES?
  918.  
  919. It is often convenient to discuss "pure" colour in the absence of
  920. brightness. The CIE defines a normalization process to compute "little" x
  921. and y chromaticity coordinates:
  922.  
  923.   x = X / (X + Y + Z);  
  924.   
  925.   y = Y / (X + Y + Z);
  926.  
  927. A colour plots as a point in an (x, y) chromaticity diagram. When a
  928. narrowband SPD comprising power at just one wavelength is swept across the
  929. range 400 nm to 700 nm, it traces a shark-fin shaped spectral locus in (x,
  930. y) coordinates. The sensation of purple cannot be produced by a single
  931. wavelength: to produce purple requires a mixture of shortwave and longwave
  932. light. The line of purples on a chromaticity diagram joins extreme blue to
  933. extreme red. All colours are contained in the area in (x, y) bounded by the
  934. line of purples and the spectral locus.
  935.  
  936. A colour can be specified by its chromaticity and luminance, in the form of
  937. an xyY triple. To recover X and Z from chromaticities and luminance, use
  938. these relations:
  939.  
  940.   X = (x / y) * Y;
  941.   
  942.   Z = (1 - x - y) / y * Y;
  943.  
  944. The bible of colour science is Wyszecki and Styles, Color Science [5]. But
  945. it's daunting. For Wyszecki's own condensed version, see Color in Business,
  946. Science and Industry, Third Edition [6]. It is directed to the colour
  947. industry: ink, paint and the like. For an approachable introduction to the
  948. same theory, accompanied by descriptions of image reproduction, try to find
  949. a copy of R.W.G. Hunt, The Reproduction of Colour [7]. But sorry to report,
  950. as I write this, it's out of print.
  951.  
  952.  
  953. C-15  WHAT IS WHITE?
  954.  
  955. In additive image reproduction, the white point is the chromaticity of the
  956. colour reproduced by equal red, green and blue components. White point is a
  957. function of the ratio (or balance) of power among the primaries. In
  958. subtractive reproduction, white is the SPD of the illumination, multiplied
  959. by the SPD of the media. There is no unique physical or perceptual
  960. definition of white, so to achieve accurate colour interchange you must
  961. specify the characteristics of your white.
  962.  
  963. It is often convenient for purposes of calculation to define white as a
  964. uniform SPD. This white reference is known as the equal-energy illuminant,
  965. or CIE Illuminant E.
  966.  
  967. A more realistic reference that approximates daylight has been specified
  968. numerically by the CIE as Illuminant D65. You should use this unless you
  969. have a good reason to use something else. The print industry commonly uses
  970. D50 and photography commonly uses D55. These represent compromises between
  971. the conditions of indoor (tungsten) and daylight viewing.
  972.  
  973.  
  974. C-16  WHAT IS COLOUR TEMPERATURE?
  975.  
  976. Planck determined that the SPD radiated from a hot object - a black body
  977. radiator - is a function of the temperature to which the object is heated.
  978. Many sources of illumination have, at their core, a heated object, so it is
  979. often useful to characterize an illuminant by specifying the temperature
  980. (in units of kelvin, K) of a black body radiator that appears to have the
  981. same hue.
  982.  
  983. Although an illuminant can be specified informally by its colour
  984. temperature, a more complete specification is provided by the chromaticity
  985. coordinates of the SPD of the source.
  986.  
  987. Modern blue CRT phosphors are more efficient with respect to human vision
  988. than red or green. In a quest for brightness at the expense of colour
  989. accuracy, it is common for a computer display to have excessive blue
  990. content, about twice as blue as daylight, with white at about 9300 K.
  991.  
  992. Human vision adapts to white in the viewing environment. An image viewed in
  993. isolation - such as a slide projected in a dark room - creates its own
  994. white reference, and a viewer will be quite tolerant of errors in the white
  995. point. But if the same image is viewed in the presence of an external white
  996. reference or a second image, then differences in white point can be
  997. objectionable.
  998.  
  999. Complete adaptation seems to be confined to the range 5000 K to 5500 K. For
  1000. most people, D65 has a little hint of blue. Tungsten illumination, at about
  1001. 3200 K, always appears somewhat yellow.
  1002.  
  1003.  
  1004. C-17  HOW CAN I CHARACTERIZE RED, GREEN AND BLUE?
  1005.  
  1006. Additive reproduction is based on physical devices that produce
  1007. all-positive SPDs for each primary. Physically and mathematically, the
  1008. spectra add. The largest range of colours will be produced with primaries
  1009. that appear red, green and blue. Human colour vision obeys the principle of
  1010. superposition, so the colour produced by any additive mixture of three
  1011. primary spectra can be predicted by adding the corresponding fractions of
  1012. the XYZ components of the primaries: the colours that can be mixed from a
  1013. particular set of RGB primaries are completely determined by the colours of
  1014. the primaries by themselves. Subtractive reproduction is much more
  1015. complicated: the colours of mixtures are determined by the primaries and by
  1016. the colours of their combinations.
  1017.  
  1018. An additive RGB system is specified by the chromaticities of its primaries
  1019. and its white point. The extent (gamut) of the colours that can be mixed
  1020. from a given set of RGB primaries is given in the (x, y) chromaticity
  1021. diagram by a triangle whose vertices are the chromaticities of the
  1022. primaries.
  1023.  
  1024. In computing there are no standard primaries or white point. If you have an
  1025. RGB image but have no information about its chromaticities, you cannot
  1026. accurately reproduce the image.
  1027.  
  1028. The NTSC in 1953 specified a set of primaries that were representative of
  1029. phosphors used in colour CRTs of that era. But phosphors changed over the
  1030. years, primarily in response to market pressures for brighter receivers,
  1031. and by the time of the first the videotape recorder the primaries in use
  1032. were quite different than those "on the books". So although you may see the
  1033. NTSC primary chromaticities documented, they are of no use today.
  1034.  
  1035. Contemporary studio monitors have slightly different standards in North
  1036. America, Europe and Japan. But international agreement has been obtained on
  1037. primaries for high definition television (HDTV), and these primaries are
  1038. closely representative of contemporary monitors in studio video, computing
  1039. and computer graphics. The primaries and the D65 white point of Rec. 709
  1040. [8] are:
  1041.  
  1042.          x       y       z
  1043. R        0.6400  0.3300  0.0300
  1044. G        0.3000  0.6000  0.1000
  1045. B        0.1500  0.0600  0.7900
  1046.  
  1047. white    0.3127  0.3290  0.3582
  1048.  
  1049. For a discussion of nonlinear RGB in computer graphics, see Lindbloom [9]. 
  1050. For technical details on monitor calibration, consult Cowan [10].
  1051.  
  1052.  
  1053. C-18  HOW DO I TRANSFORM BETWEEN CIE XYZ AND A PARTICULAR SET OF RGB
  1054.       PRIMARIES?
  1055.  
  1056. RGB values in a particular set of primaries can be transformed to and from
  1057. CIE XYZ by a three-by-three matrix transform. These transforms involve
  1058. tristimulus values, that is, sets of three linear-light components that
  1059. conform to the CIE colour matching functions. CIE XYZ is a special case of
  1060. tristimulus values. In XYZ, any colour is represented by a positive set of
  1061. values.
  1062.  
  1063. Details can be found in SMPTE RP 177-1993 [11].
  1064.  
  1065. To transform from CIE XYZ into Rec. 709 RGB (with its D65 white point), put
  1066. an XYZ column vector to the right of this matrix, and multiply:
  1067.  
  1068.  [ R709 ] [ 3.240479 -1.53715  -0.498535 ] [ X ] 
  1069.  [ G709 ]=[-0.969256  1.875991  0.041556 ]*[ Y ] 
  1070.  [ B709 ] [ 0.055648 -0.204043  1.057311 ] [ Z ] 
  1071.  
  1072. As a convenience to C programmers, here are the coefficients as a C array:
  1073.  
  1074. {{ 3.240479,-1.53715 ,-0.498535},
  1075.  {-0.969256, 1.875991, 0.041556},
  1076.  { 0.055648,-0.204043, 1.057311}}
  1077.  
  1078. This matrix has some negative coefficients: XYZ colours that are out of
  1079. gamut for a particular RGB transform to RGB where one or more RGB
  1080. components is negative or greater than unity.
  1081.  
  1082. Here's the inverse matrix. Because white is normalized to unity, the
  1083. middle row sums to unity:
  1084.  
  1085.  [ X ] [ 0.412453  0.35758   0.180423 ] [ R709 ] 
  1086.  [ Y ]=[ 0.212671  0.71516   0.072169 ]*[ G709 ] 
  1087.  [ Z ] [ 0.019334  0.119193  0.950227 ] [ B709 ] 
  1088.  
  1089. {{ 0.412453, 0.35758 , 0.180423},
  1090.  { 0.212671, 0.71516 , 0.072169},
  1091.  { 0.019334, 0.119193, 0.950227}}
  1092.  
  1093. To recover primary chromaticities from such a matrix, compute little x and
  1094. y for each RGB column vector. To recover the white point, transform RGB=[1,
  1095. 1, 1] to XYZ, then compute x and y.
  1096.  
  1097.  
  1098. C-19  IS RGB ALWAYS DEVICE-DEPENDENT?
  1099.  
  1100. Video standards specify abstract R'G'B' systems that are closely
  1101. matched to the characteristics of real monitors. Physical devices that
  1102. produce additive colour involve tolerances and uncertainties, but if you
  1103. have a monitor that conforms to Rec. 709 within some tolerance, you can
  1104. consider the monitor to be device-independent.
  1105.  
  1106. The importance of Rec. 709 as an interchange standard in studio video,
  1107. broadcast television and high definition television, and the perceptual
  1108. basis of the standard, assures that its parameters will be used even by
  1109. devices such as flat-panel displays that do not have the same physics as
  1110. CRTs.
  1111.  
  1112.  
  1113. C-20  HOW DO I TRANSFORM DATA FROM ONE SET OF RGB PRIMARIES TO ANOTHER?
  1114.  
  1115. RGB values in a system employing one set of primaries can be transformed
  1116. into another set by a three-by-three linear-light matrix transform.
  1117. Generally these matrices are normalized for a white point luminance of
  1118. unity. For details, see Television Engineering Handbook [12].
  1119.  
  1120. As an example, here is the transform from SMPTE 240M (or SMPTE RP 145) RGB
  1121. to Rec. 709:
  1122.  
  1123.  [ R709 ] [ 0.939555  0.050173  0.010272 ] [ R240M ] 
  1124.  [ G709 ]=[ 0.017775  0.965795  0.01643  ]*[ G240M ] 
  1125.  [ B709 ] [-0.001622 -0.004371  1.005993 ] [ B240M ] 
  1126.  
  1127. {{ 0.939555, 0.050173, 0.010272},
  1128.  { 0.017775, 0.965795, 0.01643 },
  1129.  {-0.001622,-0.004371, 1.005993}}
  1130.  
  1131. All of these terms are close to either zero or one. In a case like this, if
  1132. the transform is computed in the nonlinear (gamma-corrected) R'G'B'
  1133. domain the resulting errors will be insignificant.
  1134.  
  1135. Here's another example. To transform EBU 3213 RGB to Rec. 709:
  1136.  
  1137.  [ R709 ] [ 1.044036 -0.044036  0.       ] [ R240M ] 
  1138.  [ G709 ]=[ 0.        1.        0.       ]*[ G240M ] 
  1139.  [ B709 ] [ 0.        0.011797  0.988203 ] [ B240M ] 
  1140.  
  1141. {{ 1.044036,-0.044036, 0.      },
  1142.  { 0.      , 1.      , 0.      },
  1143.  { 0.      , 0.011797, 0.988203}}
  1144.  
  1145. Transforming among RGB systems may lead to an out of gamut RGB result where
  1146. one or more RGB components is negative or greater than unity.
  1147.  
  1148.  
  1149. C-21  SHOULD I USE RGB OR XYZ FOR IMAGE SYNTHESIS?
  1150.  
  1151. Once light is on its way to the eye, any tristimulus-based system will
  1152. work. But the interaction of light and objects involves spectra, not
  1153. tristimulus values. In synthetic computer graphics, the calculations are
  1154. actually simulating sampled SPDs, even if only three components are used.
  1155. Details concerning the resultant errors are found in Hall [13].
  1156.  
  1157.  
  1158. C-22  WHAT IS SUBTRACTIVE COLOUR?
  1159.  
  1160. Subtractive systems involve coloured dyes or filters that absorb power from
  1161. selected regions of the spectrum. The three filters are placed in tandem. A
  1162. dye that appears cyan absobs longwave (red) light. By controlling the
  1163. amount of cyan dye (or ink), you modulate the amount of red in the image.
  1164.  
  1165. In physical terms the spectral transmission curves of the colourants
  1166. multiply, so this method of colour reproduction should really be called
  1167. "multiplicative". Photographers and printers have for decades measured
  1168. transmission in base-10 logarithmic density units, where transmission of
  1169. unity corresponds to a density of 0, transmission of 0.1 corresponds to a
  1170. density of 1, transmission of 0.01 corresponds to a density of 2 and so on.
  1171. When a printer or photographer computes the effect of filters in tandem, he
  1172. subtracts density values instead of multiplying transmission values, so he
  1173. calls the system subtractive.
  1174.  
  1175. To achieve a wide range of colours in a subtractive system requires filters
  1176. that appear coloured cyan, yellow and magenta (CMY). Cyan in tandem with
  1177. magenta produces blue, cyan with yellow produces green, and magenta with
  1178. yellow produces red. Smadar Nehab suggests this memory aid:
  1179.  
  1180.   ----+             ----------+
  1181.    R  | G    B        R    G  | B
  1182.       |                       |
  1183.    Cy | Mg   Yl       Cy   Mg | Yl
  1184.       +----------             +-----
  1185.  
  1186. Additive primaries are at the top, subtractive at the bottom. On the left,
  1187. magenta and yellow filters combine to produce red. On the right, red and
  1188. green sources add to produce yellow.
  1189.  
  1190.  
  1191. C-23  WHY DID MY GRADE THREE TEACHER TELL ME THAT THE PRIMARIES ARE RED,
  1192. YELLOW AND BLUE?
  1193.  
  1194. To get a wide range of colours in an additive system, the primaries must
  1195. appear red, green and blue (RGB). In a subtractive system the primaries
  1196. must appear yellow, cyan and magenta (CMY). It is complicated to predict
  1197. the colours produced when mixing paints, but roughly speaking, paints mix
  1198. additively to the extent that they are opaque (like oil paints), and
  1199. subtractively to the extent that they are transparent (like watercolours).
  1200. This question also relates to colour names: your grade three "red" was
  1201. probably a little on the magenta side, and "blue" was probably quite cyan.
  1202. For a discussion of paint mixing from a computer graphics perspective,
  1203. consult Haase [14].
  1204.  
  1205.  
  1206. C-24  IS CMY JUST ONE-MINUS-RGB?
  1207.  
  1208. In a theoretical subtractive system, CMY filters could have spectral
  1209. absorption curves with no overlap. The colour reproduction of the system
  1210. would correspond exactly to additive colour reproduction using the red,
  1211. green and blue primaries that resulted from pairs of filters in
  1212. combination.
  1213.  
  1214. Practical photographic dyes and offset printing inks have spectral
  1215. absorption curves that overlap significantly. Most magenta dyes absorb
  1216. mediumwave (green) light as expected, but incidentally absorb about half
  1217. that amount of shortwave (blue) light. If reproduction of a colour, say
  1218. brown, requires absorption of all shortwave light then the incidental
  1219. absorption from the magenta dye is not noticed. But for other colours, the
  1220. "one minus RGB" formula produces mixtures with much less blue than
  1221. expected, and therefore produce pictures that have a yellow cast in the mid
  1222. tones. Similar but less severe interactions are evident for the other pairs
  1223. of practical inks and dyes.
  1224.  
  1225. Due to the spectral overlap among the colourants, converting CMY using the
  1226. "one-minus-RGB" method works for applications such as business graphics
  1227. where accurate colour need not be preserved, but the method fails to
  1228. produce acceptable colour images.
  1229.  
  1230. Multiplicative mixture in a CMY system is mathematically nonlinear, and the
  1231. effect of the unwanted absorptions cannot be easily analyzed or
  1232. compensated. The colours that can be mixed from a particular set of CMY
  1233. primaries cannot be determined from the colours of the primaries
  1234. themselves, but are also a function of the colours of the sets of
  1235. combinations of the primaries.
  1236.  
  1237. Print and photographic reproduction is also complicated by nonlinearities
  1238. in the response of the three (or four) channels. In offset printing, the
  1239. physical and optical processes of dot gain introduce nonlinearity that is
  1240. roughly comparable to gamma correction in video. In a typical system used
  1241. for print, a black code of 128 (on a scale of 0 to 255) produces a
  1242. reflectance of about 0.26, not the 0.5 that you would expect from a linear
  1243. system. Computations cannot be meaningfully performed on CMY components
  1244. without taking nonlinearity into account.
  1245.  
  1246. For a detailed discussion of transferring colorimetric image data to print
  1247. media, see Stone [15].
  1248.  
  1249.  
  1250. C-25  WHY DOES OFFSET PRINTING USE BLACK INK IN ADDITION TO CMY?
  1251.  
  1252. Printing black by overlaying cyan, yellow and magenta ink in offset
  1253. printing has three major problems. First, coloured ink is expensive.
  1254. Replacing coloured ink by black ink - which is primarily carbon - makes
  1255. economic sense. Second, printing three ink layers causes the printed paper
  1256. to become quite wet. If three inks can be replaced by one, the ink will dry
  1257. more quickly, the press can be run faster, and the job will be less
  1258. expensive. Third, if black is printed by combining three inks, and
  1259. mechanical tolerances cause the three inks to be printed slightly out of
  1260. register, then black edges will suffer coloured tinges. Vision is most
  1261. demanding of spatial detail in black and white areas. Printing black with a
  1262. single ink minimizes the visibility of registration errors.
  1263.  
  1264. Other printing processes may or may not be subject to similar constraints.
  1265.  
  1266.  
  1267. C-26  WHAT ARE COLOUR DIFFERENCES?
  1268.  
  1269. This term is ambiguous. In its first sense, colour difference refers to
  1270. numerical differences between colour specifications. The perception of
  1271. colour differences in XYZ or RGB is highly nonuniform. The study of
  1272. perceptual uniformity concerns numerical differences that correspond to
  1273. colour differences at the threshold of perceptibility (just noticeable
  1274. differences, or JNDs).
  1275.  
  1276. In its second sense, colour difference refers to colour components where
  1277. brightness is "removed". Vision has poor response to spatial detail in
  1278. coloured areas of the same luminance, compared to its response to luminance
  1279. spatial detail. If data capacity is at a premium it is advantageous to
  1280. transmit luminance with full detail and to form two colour difference
  1281. components each having no contribution from luminance. The two colour
  1282. components can then have spatial detail removed by filtering, and can be
  1283. transmitted with substantially less information capacity than luminance.
  1284.  
  1285. Instead of using a true luminance component to represent brightness, it is
  1286. ubiquitous for practical reasons to use a luma signal that is computed
  1287. nonlinearly as outlined above ( What is luma?  ).
  1288.  
  1289. The easiest way to "remove" brightness information to form two colour
  1290. channels is to subtract it. The luma component already contains a large
  1291. fraction of the green information from the image, so it is standard to form
  1292. the other two components by subtracting luma from nonlinear blue (to form
  1293. B'-Y') and by subtracting luma from nonlinear red (to form R'-Y').
  1294. These are called chroma.
  1295.  
  1296. Various scale factors are applied to (B'-Y') and (R'-Y') for different
  1297. applications. The Y  'PBPR scale factors are optimized for component analog
  1298. video. The Y  'CBCR scaling is appropriate for component digital video such
  1299. as studio video, JPEG and MPEG. Kodak's PhotoYCC(tm) uses scale factors
  1300. optimized for the gamut of film colours. Y'UV scaling is appropriate as an
  1301. intermediate step in the formation of composite NTSC or PAL video signals,
  1302. but is not appropriate when the components are kept separate. The Y'UV
  1303. nomenclature is now used rather loosely, and it sometimes denotes any
  1304. scaling of (B'-Y') and (R'-Y'). Y  'IQ coding is obsolete.
  1305.  
  1306. The subscripts in CBCR and PBPR are often written in lower case. I find
  1307. this to compromise readability, so without introducing any ambiguity I
  1308. write them in uppercase. Authors with great attention to detail sometimes
  1309. "prime" these quantities to indicate their nonlinear nature, but because no
  1310. practical image coding system employs linear colour differences I consider
  1311. it safe to omit the primes.
  1312.  
  1313.  
  1314. C-27  HOW DO I OBTAIN COLOUR DIFFERENCE COMPONENTS FROM TRISTIMULUS
  1315.       VALUES?
  1316.  
  1317. Here is the block diagram for luma/colour difference encoding and
  1318. decoding:
  1319.  
  1320. << A nice diagram is included in the .PDF and .PS versions. >>
  1321.  
  1322. From linear XYZ - or linear R1 G1 B1 whose chromaticity coordinates are
  1323. different from the interchange standard - apply a 3x3 matrix transform
  1324. to obtain linear RGB according to the interchange primaries. Apply a a
  1325. nonlinear transfer function ("gamma correction") to each of the components
  1326. to get nonlinear R'G'B'. Apply a 3x3 matrix to obtain colour
  1327. difference components such as Y'PBPR , Y'CBCR or PhotoYCC. If necessary,
  1328. apply a colour subsampling filter to obtain subsampled colour difference
  1329. components. To decode, invert the above procedure: run through the block
  1330. diagram right-to-left using the inverse operations. If your monitor
  1331. conforms to the interchange primaries, decoding need not explicitly use a
  1332. transfer function or the tristimulus 3x3.
  1333.  
  1334. The block diagram emphasizes that 3x3 matrix transforms are used for two
  1335. distinctly different tasks. When someone hands you a 3x3, you have to ask
  1336. for which task it is intended.
  1337.  
  1338.  
  1339. C-28  HOW DO I ENCODE Y'PBPR COMPONENTS?
  1340.  
  1341. Although the following matrices could in theory be used for tristimulus
  1342. signals, it is ubiquitous to use them with gamma-corrected signals.
  1343.  
  1344. To encode Y'PBPR , start with the basic Y', (B'-Y') and (R'-Y')
  1345. relationships:
  1346.  
  1347. Eq 1
  1348.  
  1349.  [  Y'   601 ] [ 0.299  0.587  0.114 ] [ R' ] 
  1350.  [ B'-Y' 601 ]=[-0.299 -0.587  0.886 ]*[ G' ] 
  1351.  [ R'-Y' 601 ] [ 0.701 -0.587 -0.114 ] [ B' ] 
  1352.  
  1353. {{ 0.299, 0.587, 0.114},
  1354.  {-0.299,-0.587, 0.886},
  1355.  { 0.701,-0.587,-0.114}}
  1356.  
  1357. Y'PBPR components have unity excursion, where Y' ranges [0..+1] and each
  1358. of PB and PR ranges [-0.5..+0.5]. The (B'-Y') and (R'-Y') rows need to
  1359. be scaled. To encode from R'G'B' where reference black is 0
  1360. and reference white is +1:
  1361.  
  1362. Eq 2
  1363.  
  1364.  [  Y'  601 ] [ 0.299     0.587     0.114    ] [ R' ] 
  1365.  [  PB  601 ]=[-0.168736 -0.331264  0.5      ]*[ G' ] 
  1366.  [  PR  601 ] [ 0.5      -0.418688 -0.081312 ] [ B' ] 
  1367.  
  1368. {{ 0.299   , 0.587   , 0.114   },
  1369.  {-0.168736,-0.331264, 0.5     },
  1370.  { 0.5     ,-0.418688,-0.081312}}
  1371.  
  1372. The first row comprises the luma coefficients; these sum to unity. The
  1373. second and third rows each sum to zero, a necessity for colour difference
  1374. components. The +0.5 entries reflect the maximum excursion of PB and PR of
  1375. +0.5, for the blue and red primaries [0, 0, 1] and [1, 0, 0].
  1376.  
  1377. The inverse, decoding matrix is this:
  1378.  
  1379.  [ R' ] [ 1.        0.        1.402    ] [  Y'  601 ] 
  1380.  [ G' ]=[ 1.       -0.344136 -0.714136 ]*[  PB  601 ] 
  1381.  [ B' ] [ 1.        1.772     0.       ] [  PR  601 ] 
  1382.  
  1383. {{ 1.      , 0.      , 1.402   },
  1384.  { 1.      ,-0.344136,-0.714136},
  1385.  { 1.      , 1.772   , 0.      }}
  1386.  
  1387.  
  1388. C-29  HOW DO I ENCODE Y'CBCR COMPONENTS FROM R'G'B' IN [0, +1]?
  1389.  
  1390. Rec. 601 specifies eight-bit coding where Y' has an excursion of 219 and
  1391. an offset of +16. This coding places black at code 16 and white at code
  1392. 235, reserving the extremes of the range for signal processing headroom and
  1393. footroom. CB and CR have excursions of +/-112 and offset of +128, for a
  1394. range of 16 through 240 inclusive.
  1395.  
  1396. To compute Y'CBCR from R'G'B' in the range [0..+1], scale the rows of
  1397. the matrix of Eq 2 by the factors 219, 224 and 224, corresponding to the
  1398. excursions of each of the components:
  1399.  
  1400. Eq 3
  1401.  
  1402. {{    65.481,   128.553,    24.966},
  1403.  {   -37.797,   -74.203,   112.   },
  1404.  {   112.   ,   -93.786,   -18.214}}
  1405.  
  1406. Add [16, 128, 128] to the product to get Y'CBCR. 
  1407.  
  1408. Summing the first row of the matrix yields 219, the luma excursion from
  1409. black to white. The two entries of 112 reflect the positive CBCR extrema of
  1410. the blue and red primaries.
  1411.  
  1412. Clamp all three components to the range 1 through 254 inclusive, since Rec.
  1413. 601 reserves codes 0 and 255 for synchronization signals.
  1414.  
  1415. To recover R'G'B' in the range [0..+1] from Y'CBCR, subtract [16, 128, 128]
  1416. from Y'CBCR, then multiply by the inverse of the matrix in Eq 3 above:
  1417.  
  1418. {{ 0.00456621, 0.        , 0.00625893},
  1419.  { 0.00456621,-0.00153632,-0.00318811},
  1420.  { 0.00456621, 0.00791071, 0.        }}
  1421.  
  1422. This looks scary, but the Y'CBCR components are integers in eight
  1423. bits and the reconstructed R'G'B' are scaled down to the range
  1424. [0..+1].
  1425.  
  1426.  
  1427. C-30  HOW DO I ENCODE Y'CBCR COMPONENTS FROM COMPUTER R'G'B' ?
  1428.  
  1429. In computing it is conventional to use eight-bit coding with black at code 0
  1430. and white at 255. To encode Y'CBCR from R'G'B' in the range [0..255], using
  1431. eight-bit binary arithmetic, scale the Y'CBCR matrix of Eq 3 by 256/255:
  1432.  
  1433. {{    65.738,   129.057,    25.064},
  1434.  {   -37.945,   -74.494,   112.439},
  1435.  {   112.439,   -94.154,   -18.285}}
  1436.  
  1437. The entries in this matrix have been scaled up by 256, assuming that you will
  1438. implement the equation in fixed-point binary arithmetic, using a shift by eight
  1439. bits. Add [16, 128, 128] to the product to get Y'CBCR. 
  1440.  
  1441. To decode R'G'B' in the range [0..255] from Rec. 601 Y'CBCR, using
  1442. eight-bit binary arithmetic , subtract [16, 128, 128] from Y'CBCR, 
  1443. then multiply by the inverse of the matrix above, scaled by 256:
  1444.  
  1445. Eq 4
  1446.  
  1447. {{   298.082,     0.   ,   408.583},
  1448.  {   298.082,  -100.291,  -208.12 },
  1449.  {   298.082,   516.411,     0.   }}
  1450.  
  1451. You can remove a factor of 1/256 from these coefficients, then accomplish the
  1452. multiplication by shifting. Some of the coefficients, when scaled by 256, are
  1453. larger than unity. These coefficients will need more than eight multiplier
  1454. bits.
  1455.  
  1456. For implementation in binary arithmetic the matrix coefficients have to be
  1457. rounded. When you round, take care to preserve the row sums of [1, 0, 0].
  1458.  
  1459. The matrix of Eq 4 will decode standard Y'CBCR components to RGB
  1460. components in the range [0..255], subject to roundoff error. You must take
  1461. care to avoid overflow due to roundoff error. But you must protect against
  1462. overflow in any case, because studio video signals use the extremes of the
  1463. coding range to handle signal overshoot and undershoot, and these will
  1464. require clipping when decoded to an RGB range that has no headroom or
  1465. footroom.
  1466.  
  1467.  
  1468. C-31  HOW DO I ENCODE Y'CBCR COMPONENTS FROM STUDIO VIDEO?
  1469.  
  1470. Studio R'G'B' signals use the same 219 excursion as the luma component
  1471. of Y'CBCR. To encode Y'CBCR from R'G'B' in the range [0..219], using
  1472. eight-bit binary arithmetic, scale the Y'CBCR encoding matrix of Eq 3
  1473. above by 256/219. Here is the encoding matrix for studio video:
  1474.  
  1475. {{    65.481,   128.553,    24.966},
  1476.  {   -37.797,   -74.203,   112.   },
  1477.  {   112.   ,   -93.786,   -18.214}}
  1478.  
  1479. To decode R'G'B' in the range [0..219] from Y'CBCR, using eight-bit
  1480. binary arithmetic, use this matrix:
  1481.  
  1482. {{   256.   ,     0.   ,   350.901},
  1483.  {   256.   ,   -86.132,  -178.738},
  1484.  {   256.   ,   443.506,     0.   }}
  1485.  
  1486. When scaled by 256, the first column in this matrix is unity, indicating
  1487. that the corresponding component can simply be added: there is no need for
  1488. a multiplication operation. This matrix contains entries larger than 256;
  1489. the corresponding multipliers will need capability for nine bits.
  1490.  
  1491. The matrices in this section conform to Rec. 601 and apply directly to
  1492. conventional 525/59.94 and 625/50 video. It is not yet decided whether
  1493. emerging HDTV standards will use the same matrices, or adopt a new set of
  1494. matrices having different luma coefficients. In my view it would be
  1495. unfortunate if different matrices were adopted, because then image coding
  1496. and decoding would depend on whether the picture was small (conventional
  1497. video) or large (HDTV).
  1498.  
  1499. In digital video, Rec. 601 standardizes subsampling denoted 4:2:2, where CB
  1500. and CR components are subsampled horizontally by a factor of two with
  1501. respect to luma. JPEG and MPEG conventionally subsample by a factor of two
  1502. in the vertical dimension as well, denoted 4:2:0.
  1503.  
  1504. Colour difference coding is standardized in Rec. 601. For details on colour
  1505. difference coding as used in video, consult Watkinson [16].
  1506.  
  1507.  
  1508. C-32  HOW DO I DECODE R'G'B' FROM PHOTOYCC?
  1509.  
  1510. Kodak's PhotoYCC uses the Rec. 709 primaries, white point and transfer
  1511. function. Reference white codes to luma 189; this preserves film
  1512. highlights. The colour difference coding is asymmetrical, to encompass film
  1513. gamut. You are unlikely to encounter any raw image data in PhotoYCC form
  1514. because YCC is closely associated with the PhotoCD(tm) system whose
  1515. compression methods are proprietary. But just in case, the following
  1516. equation is comparable to  in that it produces R'G'B' in the range
  1517. [0..+1] from integer YCC. If you want to return R'G'B' in a different
  1518. range, or implement the equation in eight-bit integer arithmetic, use the
  1519. techniques in the section above.
  1520.  
  1521. [ R'709 ] [ 0.0054980  0.0000000  0.0051681 ]    [ Y'601,189 ]   [   0 ]
  1522. [ G'709 ]=[ 0.0054980 -0.0015446 -0.0026325 ]* ( [    C1     ] - [ 156 ] )
  1523. [ B'709 ] [ 0.0054980  0.0079533  0.0000000 ]    [    C2     ]   [ 137 ]
  1524.  
  1525. {{ 0.0054980,  0.0000000,  0.0051681},
  1526.  { 0.0054980, -0.0015446, -0.0026325},
  1527.  { 0.0054980,  0.0079533,  0.0000000}}
  1528.  
  1529. Decoded R'G'B' components from PhotoYCC can exceed unity or go below
  1530. zero. PhotoYCC extends the Rec. 709 transfer function above unity, and
  1531. reflects it around zero, to accommodate wide excursions of R'G'B'. To
  1532. decode to CRT primaries, clip R'G'B' to the range zero to one.
  1533.  
  1534.  
  1535. C-33  WILL YOU TELL ME HOW TO DECODE Y'UV AND Y'IQ?
  1536.  
  1537. No, I won't! Y'UV and Y'IQ have scale factors appropriate to composite
  1538. NTSC and PAL. They have no place in component digital video! You shouldn't
  1539. code into these systems, and if someone hands you an image claiming it's
  1540. Y'UV, chances are it's actually Y'CBCR, it's got the wrong scale factors,
  1541. or it's linear-light.
  1542.  
  1543. Well OK, just this once. To transform Y', (B'-Y') and (R'-Y')
  1544. components from Eq 1 to Y'UV, scale (B'-Y') by 0.492111 to get U and
  1545. scale R'-Y' by 0.877283 to get V. The factors are chosen to limit
  1546. composite NTSC or PAL amplitude for all legal R'G'B' values:
  1547.  
  1548.   << Equation omitted -- see PostScript or PDF version. >>
  1549.  
  1550. To transform to Y'IQ to Y'UV, perform a 33 degree rotation and an exchange
  1551. of colour difference axes:
  1552.  
  1553.   << Equation omitted -- see PostScript or PDF version. >>
  1554.  
  1555.  
  1556. C-34  HOW SHOULD I TEST MY ENCODERS AND DECODERS?
  1557.  
  1558. To test your encoding and decoding, ensure that colourbars are handled
  1559. correctly. A colourbar signal comprises a binary RGB sequence ordered for
  1560. decreasing luma: white, yellow, cyan, green, magenta, red, blue and black.
  1561.  
  1562.   [ 1 1 0 0 1 1 0 0 ]
  1563.   [ 1 1 1 1 0 0 0 0 ]
  1564.   [ 1 0 1 0 1 0 1 0 ]
  1565.  
  1566. To ensure that your scale factors are correct and that clipping is not
  1567. being invoked, test 75% bars, a colourbar sequence having 75%-amplitude
  1568. bars instead of 100%.
  1569.  
  1570.  
  1571. C-35  WHAT IS PERCEPTUAL UNIFORMITY?
  1572.  
  1573. A system is perceptually uniform if a small perturbation to a component
  1574. value is approximately equally perceptible across the range of that value.
  1575. The volume control on your radio is designed to be perceptually uniform:
  1576. rotating the knob ten degrees produces approximately the same perceptual
  1577. increment in volume anywhere across the range of the control. If the
  1578. control were physically linear, the logarithmic nature of human loudness
  1579. perception would place all of the perceptual "action" of the control at the
  1580. bottom of its range.
  1581.  
  1582. The XYZ and RGB systems are far from exhibiting perceptual uniformity.
  1583. Finding a transformation of XYZ into a reasonably perceptually-uniform
  1584. space consumed a decade or more at the CIE and in the end no single system
  1585. could be agreed. So the CIE standardized two systems, L*u*v* and L*a*b*,
  1586. sometimes written CIELUV and CIELAB. (The u and v are unrelated to video U
  1587. and V.) Both L*u*v* and L*a*b* improve the 80:1 or so perceptual
  1588. nonuniformity of XYZ to about 6:1. Both demand too much computation to
  1589. accommodate real-time display, although both have been successfully applied
  1590. to image coding for printing.
  1591.  
  1592. Computation of CIE L*u*v* involves intermediate u' and v ' quantities,
  1593. where the prime denotes the successor to the obsolete 1960 CIE u and v
  1594. system:
  1595.  
  1596.   uprime = 4 * X / (X + 15 * Y + 3 * Z); 
  1597.   vprime = 9 * Y / (X + 15 * Y + 3 * Z); 
  1598.  
  1599. First compute un' and vn' for your reference white Xn , Yn  and Zn. Then
  1600. compute u' and v ' - and L* as discussed earlier - for your colours.
  1601. Finally, compute:
  1602.  
  1603.   ustar = 13 * Lstar * (uprime - unprime);
  1604.   vstar = 13 * Lstar * (vprime - vnprime);
  1605.  
  1606. L*a*b* is computed as follows, for (X/Xn, Y/Yn, Z/Zn) > 0.01:
  1607.  
  1608.   astar = 500 * (pow(X / Xn, 1./3.) - pow(Y / Yn, 1./3.));
  1609.   bstar = 200 * (pow(Y / Yn, 1./3.) - pow(Z / Zn, 1./3.));
  1610.  
  1611. These equations are great for a few spot colours, but no fun for a million
  1612. pixels. Although it was not specifically optimized for this purpose, the
  1613. nonlinear R'G'B' coding used in video is quite perceptually uniform,
  1614. and has the advantage of being fast enough for interactive applications.
  1615.  
  1616.  
  1617. C-36  WHAT ARE HSB AND HLS?
  1618.  
  1619. HSB and HLS were developed to specify numerical Hue, Saturation and
  1620. Brightness (or Hue, Lightness and Saturation) in an age when users had to
  1621. specify colours numerically. The usual formulations of HSB and HLS are
  1622. flawed with respect to the properties of colour vision. Now that users can
  1623. choose colours visually, or choose colours related to other media (such as
  1624. PANTONE), or use perceptually-based systems like L*u*v* and L*a*b*, HSB and
  1625. HLS should be abandoned.
  1626.  
  1627. Here are some of problems of HSB and HLS. In colour selection where
  1628. "lightness" runs from zero to 100, a lightness of 50 should appear to be
  1629. half as bright as a lightness of 100. But the usual formulations of HSB and
  1630. HLS make no reference to the linearity or nonlinearity of the underlying
  1631. RGB, and make no reference to the lightness perception of human vision.
  1632.  
  1633. The usual formulation of HSB and HLS compute so-called "lightness" or
  1634. "brightness" as (R+G+B)/3. This computation conflicts badly with the
  1635. properties of colour vision, as it computes yellow to be about six times
  1636. more intense than blue with the same "lightness" value (say L=50).
  1637.  
  1638. HSB and HSL are not useful for image computation because of the
  1639. discontinuity of hue at 360 degrees. You cannot perform arithmetic mixtures
  1640. of colours expressed in polar coordinates.
  1641.  
  1642. Nearly all formulations of HSB and HLS involve different computations
  1643. around 60 degree segments of the hue circle. These calculations introduce
  1644. visible discontinuities in colour space.
  1645.  
  1646. Although the claim is made that HSB and HLS are "device independent", the
  1647. ubiquitous formulations are based on RGB components whose chromaticities
  1648. and white point are unspecified. Consequently, HSB and HLS are useless for
  1649. conveyance of accurate colour information.
  1650.  
  1651. If you really need to specify hue and saturation by numerical values,
  1652. rather than HSB and HSL you should use polar coordinate version of u* and
  1653. v*: h*uv for hue angle and c*uv  for chroma.
  1654.  
  1655.  
  1656. C-37  WHAT IS TRUE COLOUR?
  1657.  
  1658. True colour is the provision of three separate components for additive red,
  1659. green and blue reproduction. True colour systems often provide eight bits
  1660. for each of the three components, so true colour is sometimes referred to
  1661. as 24-bit colour.
  1662.  
  1663. A true colour system usually interposes a lookup table between each
  1664. component of the framestore and each channel to the display. This makes it
  1665. possible to use a true colour system with either linear or nonlinear
  1666. coding. In the X Window System, true colour refers to fixed lookup tables,
  1667. and direct colour refers to lookup tables that are under the control of
  1668. application software.
  1669.  
  1670.  
  1671. C-38  WHAT IS INDEXED COLOUR?
  1672.  
  1673. Indexed colour (or pseudocolour), is the provision of a relatively small
  1674. number, say 256, of discrete colours in a colormap or palette. The
  1675. framebuffer stores, at each pixel, the index number of a colour. At the
  1676. output of the framebuffer, a lookup table uses the index to retrieve red,
  1677. green and blue components that are then sent to the display.
  1678.  
  1679. The colours in the map may be fixed systematically at the design of a
  1680. system. As an example, 216 index entries an eight-bit indexed colour system
  1681. can be partitioned systematically into a 6x6x6 "cube" to implement what
  1682. amounts to a direct colour system where each of red, green and blue has a
  1683. value that is an integer in the range zero to five.
  1684.  
  1685. An RGB image can be converted to a predetermined colormap by choosing, for
  1686. each pixel in the image, the colormap index corresponding to the "closest"
  1687. RGB triple. With a systematic colormap such as a 6x6x6 colourcube this
  1688. is straightforward. For an arbitrary colormap, the colormap has to be
  1689. searched looking for entries that are "close" to the requested colour.
  1690. "Closeness" should be determined according to the perceptibility of colour
  1691. differences. Using colour systems such as CIE L*u*v* or L*a*b* is
  1692. computationally prohibitive, but in practice it is adequate to use a
  1693. Euclidean distance metric in R'G'B' components coded nonlinearly
  1694. according to video practice.
  1695.  
  1696. A direct colour image can be converted to indexed colour with an
  1697. image-dependent colormap by a process of colour quantization that searches
  1698. through all of the triples used in the image, and chooses the palette for
  1699. the image based on the colours that are in some sense most "important".
  1700. Again, the decisions should be made according to the perceptibility of
  1701. colour differences. Adobe Photoshop(tm) can perform this conversion.
  1702. UNIX(tm) users can employ the pbm package.
  1703.  
  1704. If your system accommodates arbitrary colormaps, when the map associated
  1705. with the image in a particular window is loaded into the hardware colormap,
  1706. the maps associated with other windows may be disturbed. In window system
  1707. such as the X Window System(tm) running on a multitasking operating system
  1708. such as UNIX, even moving the cursor between two windows with different
  1709. maps can cause annoying colormap flashing.
  1710.  
  1711. An eight-bit indexed colour system requires less data to represent a
  1712. picture than a twenty-four bit truecolour system. But this data reduction
  1713. comes at a high price. The truecolour system can represent each of its
  1714. three components according to the principles of sampled continuous signals.
  1715. This makes it possible to accomplish, with good quality, operations such as
  1716. resizing the image. In indexed colour these operations introduce severe
  1717. artifacts because the underlying representation lacks the properties of a
  1718. continuous representation, even if converted back to RGB.
  1719.  
  1720. In graphic file formats such as GIF of TIFF, an indexed colour image is
  1721. accompanied by its colormap. Generally such a colormap has RGB entries that
  1722. are gamma corrected: the colormap's RGB codes are intended to be presented
  1723. directly to a CRT, without further gamma correction.
  1724.  
  1725.  
  1726. C-39  I WANT TO VISUALIZE A SCALAR FUNCTION OF TWO VARIABLES. SHOULD I USE RGB
  1727.       VALUES CORRESPONDING TO THE COLOURS OF THE RAINBOW?
  1728.  
  1729. When you look at a rainbow you do not see a smooth gradation of colours.
  1730. Instead, some bands appear quite narrow, and others are quite broad.
  1731. Perceptibility of hue variation near 540 nm is half that of either 500 nm
  1732. or 600 nm. If you use the rainbow's colours to represent data, the
  1733. visibility of differences among your data values will depend on where they
  1734. lie in the spectrum.
  1735.  
  1736. If you are using colour to aid in the visual detection of patterns, you
  1737. should use colours chosen according to the principles of perceptual
  1738. uniformity. This an open research problem, but basing your system on CIE
  1739. L*a*b* or L*u*v*, or on nonlinear video-like RGB, would be a good start.
  1740.  
  1741.  
  1742. C-40  WHAT IS DITHERING?
  1743.  
  1744. A display device may have only a small number of choices of greyscale
  1745. values or colour values at each device pixel. However if the viewer is
  1746. sufficiently distant from the display, the value of neighboring pixels can
  1747. be set so that the viewer's eye integrates several pixels to achieve an
  1748. apparent improvement in the number of levels or colours that can be
  1749. reproduced.
  1750.  
  1751. Computer displays are generally viewed from distances where the device
  1752. pixels subtend a rather large angle at the viewer's eye, relative to his
  1753. visual acuity. Applying dither to a conventional computer display often
  1754. introduces objectionable artifacts. However, careful application of dither
  1755. can be effective. For example, human vision has poor acuity for blue
  1756. spatial detail but good colour discrimination capability in blue. Blue can
  1757. be dithered across two-by-two pixel arrays to produce four times the number
  1758. of blue levels, with no perceptible penalty at normal viewing distances.
  1759.  
  1760.  
  1761. C-41  HOW DOES HALFTONING RELATE TO COLOUR?
  1762.  
  1763. The processes of offset printing and conventional laser printing are
  1764. intrinsically bilevel: a particular location on the page is either covered
  1765. with ink or not. However, each of these devices can reproduce
  1766. closely-spaced dots of variable size. An array of small dots produces the
  1767. perception of light gray, and an array of large dots produces dark gray.
  1768. This process is called halftoning or screening. In a sense this is
  1769. dithering, but with device dots so small that acceptable pictures can be
  1770. produced at reasonable viewing distances.
  1771.  
  1772. Halftone dots are usually placed in a regular grid, although stochastic
  1773. screening has recently been introduced that modulates the spacing of the
  1774. dots rather than their size.
  1775.  
  1776. In colour printing it is conventional to use cyan, magenta, yellow and
  1777. black grids that have exactly the same dot pitch but different
  1778. carefully-chosen screen angles. The recently introduced technique of
  1779. Flamenco screening uses the same screen angles for all screens, but its
  1780. registration requirements are more stringent than conventional offset
  1781. printing.
  1782.  
  1783. Agfa's booklet [17] is an excellent introduction to practical concerns of
  1784. printing. And it's in colour! The standard reference to halftoning
  1785. algorithms is Ulichney [18], but that work does not detail the
  1786. nonlinearities found in practical printing systems. For details about
  1787. screening for colour reproduction, consult Fink [19]. Consult Frequently
  1788. Asked Questions about Gamma for an introduction to the transfer function of
  1789. offset printing.
  1790.  
  1791.  
  1792. C-42  WHAT'S A COLOUR MANAGEMENT SYSTEM?
  1793.  
  1794. Software and hardware for scanner, monitor and printer calibration have had
  1795. limited success in dealing with the inaccuracies of colour handling in
  1796. desktop computing. These solutions deal with specific pairs of devices but
  1797. cannot address the end-to-end system. Certain application developers have
  1798. added colour transformation capability to their applications, but the
  1799. majority of application developers have insufficient expertise and
  1800. insufficient resources to invest in accurate colour.
  1801.  
  1802. A colour management system (CMS) is a layer of software resident on a
  1803. computer that negotiates colour reproduction between the application and
  1804. colour devices. It cooperates with the operating system and the graphics
  1805. library components of the platform software. Colour management systems
  1806. perform the colour transformations necessary to exchange accurate colour
  1807. between diverse devices, in various colour coding systems including RGB,
  1808. CMYK and CIE L*a*b*.
  1809.  
  1810. The CMS makes available to the application a set of facilities whereby the
  1811. application can determine what colour devices and what colour spaces are
  1812. available. When the application wishes to access a particular device, it
  1813. requests that the colour manager perform a mathematical transform from one
  1814. space to another. The colour spaces involved can be device-independent
  1815. abstract colour spaces such as CIE XYZ, CIE L*a*b* or calibrated RGB.
  1816. Alternatively a colour space can be associated with a particular device. In
  1817. the second case the Colour manager needs access to characterization data
  1818. for the device, and perhaps also to calibration data that reflects the
  1819. state of the particular instance of the device.
  1820.  
  1821. Sophisticated colour management systems are commercially available from
  1822. Kodak, Electronics for Imaging (EFI) and Agfa. Apple's ColorSync(tm)
  1823. provides an interface between a Mac application program and colour
  1824. management capabilities either built-in to ColorSync or provided by a
  1825. plug-in. Sun has announced that Kodak's CMS will be shipped with the next
  1826. version of Solaris.
  1827.  
  1828. The basic CMS services provided with desktop operating systems are likely
  1829. to be adequate for office users, but are unlikely to satisfy high-end users
  1830. such as in prepress. All of the announced systems have provisions for
  1831. plug-in colour management modules (CMMs) that can provide sophisticated
  1832. transform machinery. Advanced colour management modules will be
  1833. commercially available from third parties. For an application developer's
  1834. prespective on colour management, see Aldus [20].
  1835.  
  1836.  
  1837. C-43  HOW DOES A CMS KNOW ABOUT PARTICULAR DEVICES?
  1838.  
  1839. A CMS needs access to information that characterizes the colour
  1840. reproduction capabilities of particular devices. The set of
  1841. characterization data for a device is called a device profile. Industry
  1842. agreement has been reached on the format of device profiles, although
  1843. details have not yet been publicly disseminated. Apple has announced that
  1844. the forthcoming ColorSync version 2.0 will adhere to this agreement.
  1845. Vendors of colour peripherals will soon provide industry-standard profiles
  1846. with their devices, and they will have to make, buy or rent
  1847. characterization services.
  1848.  
  1849. If you have a device that has not been characterized by its manufacturer,
  1850. Agfa's FotoTune(tm) software - part of Agfa's FotoFlow(tm) colour manager -
  1851. can create device profiles.
  1852.  
  1853.  
  1854. C-44  IS A COLOUR MANAGEMENT SYSTEM USEFUL FOR COLOUR SPECIFICATION?
  1855.  
  1856. Not yet. But colour management system interfaces in the future are likely
  1857. to include the ability to accommodate commercial proprietary colour
  1858. specification systems such as pantone(tm) and colorcurve(tm). These vendors
  1859. are likely to provide their colour specification systems in shrink-wrapped
  1860. form to plug into colour managers. In this way, users will have guaranteed
  1861. colour accuracy among applications and peripherals, and application vendors
  1862. will no longer need to pay to license these systems individually.
  1863.  
  1864.  
  1865. C-45  I'M NOT A COLOUR EXPERT. WHAT PARAMETERS SHOULD I USE TO CODE MY
  1866.       IMAGES?
  1867.  
  1868. Use the CIE D65 white point (6504 K) if you can.
  1869.  
  1870. Use the Rec. 709 primary chromaticities. Your monitor is probably already
  1871. quite close to this. Rec. 709 has international agreement, offers excellent
  1872. performance, and is the basis for HDTV development so it's future-proof.
  1873.  
  1874. If you need to operate in linear light, so be it. Otherwise, for best
  1875. perceptual performance and maximum ease of interchange with digital video,
  1876. use the Rec. 709 transfer function, with its 0.45-power law. If you need
  1877. Mac compatibility you will have to suffer a penalty in perceptual
  1878. performance. Raise tristimulus values to the 1/1.8-power before presenting
  1879. them to QuickDraw.
  1880.  
  1881. To code luma, use the Rec. 601 luma coefficients 0.299, 0.587 and 0.114.
  1882. Use Rec. 601 digital video coding with black at 16 and white at 235.
  1883.  
  1884. Use prime symbols (') to denote all of your nonlinear components!
  1885.  
  1886. PhotoCD uses all of the preceding measures. PhotoCD codes colour
  1887. differences asymmetrically, according to film gamut. Unless you have a
  1888. requirement for film gamut, you should code into colour differences using
  1889. Y'CBCR coding with Rec. 601 studio video (16..235/128+/-112) excursion.
  1890.  
  1891. Tag your image data with the primary and white chromaticity, transfer
  1892. function and luma coefficients that you are using. TIFF 6.0 tags have been
  1893. defined for these parameters. This will enable intelligent readers, today
  1894. or in the future, to determine the parameters of your coded image and give
  1895. you the best possible results.
  1896.  
  1897.  
  1898. C-46  REFERENCES
  1899.  
  1900. [1] Publication CIE No 17.4, International Lighting Vocabulary. Central
  1901. Bureau of the Commission Internationale de L'Eclairage, Vienna, Austria.
  1902.  
  1903. [2] LeRoy E. DeMarsh and Edward J. Giorgianni, "Color Science for Imaging
  1904. Systems", Physics Today, September 1989, 44-52.
  1905.  
  1906. [3] W.F. Schreiber, Fundamentals of Electronic Imaging Systems, Second
  1907. Edition (Springer-Verlag, 1991), ISBN 0-387-53272-2.
  1908.  
  1909. [4] Publication CIE No 15.2, Colorimetry, Second Edition (1986), Central
  1910. Bureau of the Commission Internationale de L'Eclairage, Vienna, Austria.
  1911.  
  1912. [5] Guenter Wyszecki and W.S. Styles, Color Science: Concepts and Methods,
  1913. Quantitative Data and Formulae, Second Edition (John Wiley & Sons, New
  1914. York, 1982), ISBN 0-471-02106-7.
  1915.  
  1916. [6] Guenter Wyszecki and D.B. Judd, Color in Business, Science and
  1917. Industry, Third Edition (John Wiley, New York, 1975), ISBN 0-471-45212-2.
  1918.  
  1919. [7] R.W.G. Hunt, The Reproduction of Colour in Photography, Printing and
  1920. Television, Fourth Edition (Fountain Press, Tolworth, England, 1987), ISBN
  1921. 0-86343-088-0.
  1922.  
  1923. [8] ITU-R Recommendation BT.709, Basic Parameter Values for the HDTV
  1924. Standard for the Studio and for International Programme Exchange (1990),
  1925. [formerly CCIR Rec. 709], ITU, 1211 Geneva 20, Switzerland.
  1926.  
  1927. [9] Bruce J. Lindbloom, "Accurate Color Reproduction for Computer Graphics
  1928. Applications", Computer Graphics, Vol. 23, No. 3 (July 1989), 117-126
  1929. (proceedings of SIGGRAPH '89).
  1930.  
  1931. [10] William B. Cowan, "An Inexpensive Scheme for Calibration of a Colour
  1932. Monitor in terms of CIE Standard Coordinates", Computer Graphics, Vol. 17,
  1933. No. 3 (July 1983), 315-321.
  1934.  
  1935. [11] SMPTE RP 177-1993, Derivation of Basic Television Color Equations.
  1936.  
  1937. [12] Television Engineering Handbook, Featuring HDTV Systems, Revised
  1938. Edition by K. Blair Benson, revised by Jerry C. Whitaker (McGraw-Hill,
  1939. 1992), ISBN 0-07-004788-X. This supersedes the Second Edition.
  1940.  
  1941. [13] Roy Hall, Illumination and Color in Computer Generated Imagery
  1942. (Springer-Verlag, 1989), ISBN 0-387-96774-5.
  1943.  
  1944. [14] Chet S. Haase and Gary W. Meyer, "Modelling Pigmented Materials for
  1945. Realistic Image Synthesis", ACM Transactions on Graphics, Vol. 11, No. 4,
  1946. 1992, p. 305.
  1947.  
  1948. [15] Maureen C. Stone, William B. Cowan and John C. Beatty, "Color Gamut
  1949. Mapping and the Printing of Digital Color Images", ACM Transactions on
  1950. Graphics, Vol. 7, No. 3, October 1988.
  1951.  
  1952. [16] John Watkinson, An Introduction to Digital Video (Focal Press,
  1953. Sevenoaks, Kent, England, 1994), ISBN 0-240-51380-0.
  1954.  
  1955. [17] Agfa Corporation, An introduction to Digital Color Prepress, Volumes 1
  1956. and 2 (1990), Prepress Education Resources, P.O. Box 7917 Mt.Prospect, IL
  1957. 60056-7917. 800-395-7007.
  1958.  
  1959. [18] Robert Ulichney, Digital Halftoning (MIT Press, Cambridge, MA, 1988),
  1960. ISBN 0-262-21009-6.
  1961.  
  1962. [19] Peter Fink, PostScript Screening: Adobe Accurate Screens (Adobe Press,
  1963. 1992), ISBN 0-672-48544-3.
  1964.  
  1965. [20] Color management systems: Getting reliable color from start to finish,
  1966. Aldus Corporation, <ftp://www.adobe.com/PDFs/FaxYI/500301.pdf>.
  1967.  
  1968. [21] Overview of color publishing, Aldus Corporation,
  1969. <ftp://www.adobe.com/PDFs/FaxYI/500302.pdf>. Despite appearances and title,
  1970. this document is in greyscale, not colour.
  1971.  
  1972.  
  1973. C-47  CONTRIBUTORS
  1974.  
  1975. Thanks to Norbert Gerfelder, Alan Roberts and Fred Remley for their
  1976. proofreading and editing. I learned about colour from LeRoy DeMarsh, Ed
  1977. Giorgianni, Junji Kumada and Bill Cowan. Thanks!
  1978.  
  1979. I welcome corrections, and suggestions for additions and improvements.
  1980.  
  1981.  
  1982. Charles A. Poynton
  1983.  
  1984. ------------------------------
  1985.  
  1986. .
  1987.